package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件复制
 */
public class CopyDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("image.png");
        FileOutputStream fos = new FileOutputStream("image_cp.png");
        /*
            image.png图片数据
            11001100 00110011 11110000 00001111 10101010 01010101...


            第一次调用:d = fis.read();
            11001100 00110011 11110000 00001111 10101010 01010101...
            ^^^^^^^^
            读取的字节

            读取后d的样子
            d:00000000 00000000 00000000 11001100
                                         读取到的数据

            fos.write(d);//将d对应的2进制的"低八位"写入文件image_cp.png
            d:00000000 00000000 00000000 11001100
                                         ^^^^^^^^
                                         写出的字节
            image_cp.png内容:
            11001100

         */
        int d;//记录每次读取到的字节
//        while(true) {//死循环
//            d = fis.read();//读取1个字节
//            if(d==-1){//判断读取后返回值是否为-1(是否是文件末尾了)
//                break;//如果是文件末尾就停止循环
//            }
//            fos.write(d);//不是文件末尾则将读取的字节写入另一个文件
//        }
        long start = System.currentTimeMillis();
        while((d = fis.read())!=-1){
            fos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end - start)+"ms");
        fis.close();
        fos.close();


    }
}
